МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
МАСИВИ І ФАЙЛИ В МОВІ ПРОГРАМУВАННЯ С
Інструкція
до Лабораторної роботи № 4
з курсу “Проблемно-орієнтовані мови програмування”
для студентів базового напрямку 6.08.04
"Комп’ютерні науки"
ЗАТВЕРДЖЕНО
на засіданні кафедри
Системи автоматизованого проектування
Протокол № 1 від 31 серпня 2009 р.
ЛЬВІВ 2009
Масиви і файли в мові програмування С
Інструкції до лабораторної роботи № 4 з курсу “Проблемно-орієнтовані мови програмування” для студентів базового напрямку 6.08.04 "Комп’ютерні науки“
Укл. М. І. Андрійчук, І. І. Чура. -Львів: НУ “ЛП”, 2009 р. - 14 с.
Укладачі М. І. Андрійчук, доц., к. ф.-м. н.
І. І. Чура, доц., к.т.н.
Відповідальний за випуск С. П. Ткаченко, канд. техн. наук, доц.
Рецензенти М. В. Лобур, доктор техн. наук,
В. І. Каркульовський, канд. техн. наук
1. МЕТА РОБОТИ
Мета роботи - навчитися використовувати масиви та користуватися файлами при розв’язанні задач векторного типу.
2. ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. Масиви
Масив - це послідовно розміщені у пам’яті елементи одного типу. Кожен масив має ім’я. Доступ до окремих елементів масиву відбувається по імені масиву та індексу (порядковому номеру) елемента. Основні властивості масивів:
всі елементи масиву мають однаковий тип;
всі елементи масиву розміщені у пам’яті послідовно - один за одним; індекс першого елемента рівний нулю;
ім’я масиву є вказівником-константою, рівною адресі першого елемента масиву.
Ознакою масиву при описі є наявність парних квадратних дужок [ ]. Константа або константний вираз у квадратних дужках задає число елементів масиву.
Одномірний масив
Загальний вигляд стрічки оголошення одномірного масиву наступний:
тип ім’я_масиву[розмірність];
Наприклад:
int x[10];
float y[20];
char name[18];
Загальний розмір масиву в байтах можна обчислити за формулою:
загальний розмір = розмір базового типу * кількість елементів
Для наведеного прикладу розмірність першого масиву 2 * 10 = 20,
другого - 4 * 20 = 80, третього - 1 * 18 = 18 байт.
Схематично одномірний масив можна зобразити так:
Приклад використання:
main()
{
int x[10];
int t;
for(t = 0; t < 10; t++)
x[t] = t;
}
Двомірні масиви
С дозволяє використовувати багатомірні масиви. Найпростіший варіант - двомірний масив. Для оголошення двомірного масиву типу integer twodim розмірністю 10 на 20 потрібно описати його наступним чином:
int twodim[10][20];
Будьте уважні, на відміну від інших мов програмування розмірності масиву відокремлені одна від одної квадратними дужками.
Отже, для доступу до елемента з індексами 3, 5 масиву twodim служить наступний запис twodim[3][5]. Наступний приклад демонструє роботу з двомірним масивом, а саме, присвоєння кожному елементу цього масиву суму відповідних індексів:
main()
{
int t, i, num[3][4];
for(t = 0; t < 3; t++)
for(i = 0; i < 4; i++)
num[t][i] = i + t;
}
Двомірні масиви зберігаються у вигляді матриць, тобто колонок та рядків. Схематично це можна зобразити так:
Масив М[4][8]
Багатомірні масиви
Загальний вигляд оголошення багатомірного масиву наступний:
тип ім’я[розмірність1][розмірність2]...[розмірність N]
Для прикладу покажемо, як оголосити масив цілого типу розмірністю 4 х 10 х 5 :
int three[4][10][5];
А створення чотирьохмірного масиву 4 х 10 х 5 х 7:
int four[4][10][5][7];
Багатомірні масиви використовуються рідко, оскільки це потребує значного обсягу пам’яті, який резервується компілятором. Так для масиву four необхідно 2*4*10*5*7=2800 байт. А якщо подібний масив буде мати тип double (кожний елемент довжиною 8 байт), то для зберігання такого масиву необхідно 11200 байт.
Ініціалізація масиву
С дозволяє ініціалізувати масиви при описі. Загальна форма такої ініціалізації подібна до ініціалізації інших змінних:
тип ім’я[розмірність1]...[розмірністьN] = {список значень};
Cписок значень - це розділений комами список констант. Наприклад:
int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Це означає, що i[0] = 1, i[1] = 2, ... , i[9] = 1...